/*
 * Copyright (c) 2010-2011 NOO. All Rights Reserved.
 * [Id:DateTimeLongConverter.java  2011-10-26 下午10:25 poplar.yfyang ]
 */
package org.mumu.pawn.fm.converter;

import org.mumu.pawn.util.DateTimeUtils;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

/**
 * <p>
 * 将时间转换为长整型.
 * 需要统一前端页面的时间格式为YYYY-mm-DD HH:mm:ss
 * </p>
 *
 * @author poplar.yfyang
 * @version 1.0 2011-10-26 下午10:25
 * @since JDK 1.5
 */
@FacesConverter(value = "longDateConverter")
public class DateTimeLongConverter implements Converter {

    /**
     * 将时间格式的字符串，转换为长整型的日期。
     * 客户端提交会执行此方法。
     *
     * @param context   当前的JSF上下文
     * @param component 当前的组件
     * @param value     时间格式的字符串
     * @return 长整型的日期
     */
    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        return DateTimeUtils.toTime(value);
    }

    /**
     * 将长整型的日期，转换为日期格式的字符串用于显示
     *
     * @param context   当前的JSF上下文
     * @param component 当前的组件
     * @param value     长整型的日期
     * @return 日期格式的字符串表示
     */
    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value == null) {
            return "1970-01-01";
        }
        return DateTimeUtils.time(Long.valueOf(value.toString()));
    }
}
